home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Video Toaster 4.3
/
Video Toaster v4.3.iso
/
4.2
/
programs
/
documentation
/
arexx
/
editorarexx.doc
< prev
next >
Wrap
Text File
|
1998-04-16
|
21KB
|
558 lines
Editor ARexx Documentation Nov 21 1995 Editor version 4.1
The Video Toaster's Editor interface is controlled through an entirely
separate program, Edit. It has its own ARexx port, which is configured as
a function host. The port name is PROJECT_REXX_PORT, and the functions
it responds to are documented below. Although arexx programs can be
executed (asynchronously) from within a sequence, the editor itself is
preoccupied with its sequencing duties, and will not respond to any rexx
messages sent to it until after the sequence is done playing. The upshot
of this is that you must put your rexx croutons at the end of a sequence if
you want them to talk to the editor. Have fun.
"CROUTONNAME" returns crouton name
ARGS: [Row,Column]
"CROUTONSPOT" return position in grid for current crouton
ARGS: NONE
"CROUTONTYPE" Return Crouton Type
ARGS: [Row,Column]
"CROUTONSINPROJECT" Return total number of croutons in the current project.
"CROUTONPICK" Pick Crouton -- Selects Crouton
ARGS: 0 args ==> deselect all
ARGS: 1 args ==> Number OR "FIRST" or "LAST"
ARGS: 2 args ==> Row,Column
"CROUTONLOAD" Load Crouton -- Load crouton into project and place at the end. If
INSERT keyword is included, will instead insert after the currently
selected crouton (if none is selected, will be placed at the
beginning).
ARGS: crouton name (full path) [INSERT]
"CROUTONDELETE" Deletes currently selected crouton
ARGS: NONE
"CROUTONTIME" Returns the start time for the selected crouton, measured from the
start of the project. Value is in fields. This value is useful
for locking a crouton (using the DELAY tag).
ARGS: NONE
"CROUTONRUN" Run Crouton without adding to project
ARGS: CroutonName
"CROUTONSELECTED" Return 1 if crouton is selected.
ARGS: [Row,Column]
"CROUTONSTOP" Aborts currently playing crouton (clip)
ARGS: none
"CROUTONGETTAG" Return Tag value, may be 0 if tag doesn't exist OR tag has value of 0
ARGS: Tag name
"CROUTONSETTAG" Set crouton tag value
ARGS: Tag name, Value
"CROUTONSAVETAG" Mark the named tag for the currently selected crouton as
needing to be saved with the project the next time it's
saved. This marking is not permanent -- if the project
is reloaded, the normal strategy is once again applied to
determine which tags get saved.
ARGS: Tag name
"CROUTONCHECKTAG" Check existance of tag in crouton, return size
ARGS: Tag name
NOTE: It appears that this function, now debugged, always succeeds - so
please check tag validity with CROUTONTYPE, etc. before applying some
irrelevant or illegal tag. For example, use CROUTONTYPE to identify
that a crouton is a Framestore so you don't foolishly apply a AUDIOVOLUME1
to it!
========= CRNUMxxxx functions =========
These work very similar to their CROUTONxxxx counterparts, but do not operate on the
currently selected crouton. Instead, they take an additional argument which specifies
the crouton (by number). The croutons in the project are numbered starting at 0.
These functions also leave unchanged any crouton(s) which may have been previously
selected/highlighted.
These have been provided to prevent the unpredictable results which can occur when
someone uses the Editor to highlight/unhighlight croutons while an ARexx script is
executing. These functions remove this possibility by using a specification
mechanism that the user cannot tamper with.
"CRNUMTYPE" Return type of the specified crouton in project (not currently selected one).
ARGS: Crouton number
"CRNUMGETTAG" Return Tag value for specified crouton in project (not currently selected one).
May be 0 if tag doesn't exist OR tag has value of 0
ARGS: Crouton number, Tag name
"CRNUMSETTAG" Set tag value for specified crouton in project (not currently selected one).
ARGS: Crouton number, Tag name, Value
"CRNUMSAVETAG" Mark the named tag for the specified crouton as
needing to be saved with the project the next time it's
saved. This marking is not permanent -- if the project
is reloaded, the normal strategy is once again applied to
determine which tags get saved.
ARGS: Crouton number, Tag name
"CRNUMCHECKTAG" Check existance of tag in specified crouton, return size
ARGS: Crouton number, Tag name
"PROJECTLOAD" Load Project
ARGS: Project name (full path)
"PROJECTSAVE" Save Project
ARGS: Project name (full path)
"PROJECTPLAY" Play Project
ARGS: none
"PROJECTUPDATE" Update Project after modifying croutons or tags (updates total
running time display)
ARGS: none
"FLYERDRIVE" Return flyer drive name based on index in internal list, or ""
ARGS: Drive number, starting at 0
"FLYERSTATUS" Return flyer recording status/error code, useful to determine if
Flyer has failed/stopped recording, and if so why.
The codes are listed below (FERR_xxx).
ARGS: NONE
"FLYEROUT" Adjust Toaster settings for inputs 3 and 4
ARGS:[value] (if value is omitted, current setting is returned)
Setting is bit mask for inputs 3(bit 0) and 4(bit 1). Bit set means
Flyer has that input, 0 means it is live toaster input.
"RECORDADD" Record fields into a flyer clip, will append fields into an
existing clip, or create a new one. The clip is always closed and usable
after this command. Although the flyer can only record clips in whole
(4-field) NTSC color-frames, this command will copy the correct fields
into the clip, temporarily padding the clip on the end to make a complete
color-frame if necessary.
ARGS: ClipName, # of Fields [, Source, Compression Mode]
omitting source or mode will use last selected mode, note that all
clips must have full flyer VOLUME name included.
"RECORDCLIP" Record a named flyer clip, won't overwrite existing clip w/ same name
This places Flyer into record mode. When finished recording, you MUST
place it back into play mode. To do this, use RECORDSTOP (even if you
detect with FLYERSTATUS that recording has stopped on its own).
ARGS: ClipName [Name, # of Fields, Source, Compression Mode]
if fields=0, recording continues 'til drive is full omitting source
or mode will use last selected mode, note that all clips must have
full flyer VOLUME name included. This command will probably not be able
to record clips with an uneven number of color-frames.
"RECORDPAUSE" Pause Recording
ARGS: Pause=1 for Pause, 0 for resume
"RECORDSTOP" Stop Recording and put Flyer back into play mode. You MUST do this even
if the Flyer stops recording on its own, or the Editor will NOT be able
to play clips or do sequencing!
ARGS: none
"MAKEICON" Create an icon for a flyer clip, optionally make 'Flyer Still'
icon for 4=field clips by adding 'STILL' keyword.
ARGS: ClipName [, Field, ['STILL'] ]
"REQ_BUTTONS" Put up requester with title and up to 4 labelled buttons.
"Defaults" is a string of 0/1's specifying initial button
states. Returns string of 0/1's for each final button state
or "CANCEL" if user cancels requester. Strings are only as
long as the number of buttons being used; first digit is
for the first button.
ARGS: Title, Defaults, label1,[label2,[label3,[label4]]]
"REQ_ERROR" Display error message at top of screen
ARGS: String
"REQ_FLYERJOG" Put up a Flyer clip jog/shuttle requester
ARGS: Title, Pathname, [points]
Put up requester with a slider to allow user to jog/shuttle
thru a Flyer clip to pick a specific time. This works by
just specifying a pathname (volume:name) for the clip. It
does not need to be in the current sequence. You MUST include
the volume name, and it must NOT be the device name. In other
words "FlyerA0:abc" is proper, but "FA0:abc" is not.
"Points" can be 1 or 2. Default if omitted is 1. This selects
whether a 1-knob or 2-knob slider will be presented. This
function returns "CANCEL" if user presses Cancel button, otherwise
it returns the time value as a string. For 2-knob version, it
returns the two time strings separated by a space.
This function will not affect the tags of any croutons in the
project, so if the intent is to do this, you must use the output
of this function and CROUTONSETTAG to actually change a
crouton's tags.
Note that the time values used in the editor are usually displayed
in drop-frame format. The time values returned by this function
are non-drop format -- this means the values returned are actual
numbers of frames. The 2nd point, however, is EXCLUSIVE. This
means that the 2nd time returned is not exactly the time shown in
the 2nd time box, but is adjusted so it includes the user's desired
last frame. This also makes the TAG_DURATION easy to compute:
2nd time - 1st time.
"REQ_NUMBER" Put up number requester with optional min,max limits
Returns "CANCEL" if user presses Cancel button.
ARGS: Title, [num,[min,[max]]]
"REQ_STRING" String requester
Returns "CANCEL" if user presses Cancel button.
ARGS: Title, [String]
"REQ_TELL" Put up requester with title and up to 3 lines, return 1 or 0
ARGS: Title, [line1,[line2,[line3]]]
"REQ_TIME" Time code string requester -- alters/returns time string like 'HH:MM:SS:FF'
Returns "CANCEL" if user presses Cancel button.
ARGS: Title, [time]
"REQ_OPEN" Open an asynchronous requester with title and up to 3 lines, return nothing
ARGS: Title, [line1,[line2,[line3]]]
"REQ_CLOSE" Close asynchronous opened with REQ_OPEN
ARGS: NONE
"STARTFILEREQ" Open Grazer as file requester, use QUERYFILEREQ to query result
ARGS: Title, Initial path, Initial file
"QUERYFILEREQ" Return result of Grazer as file requester:
"" if requester is up, 0 if canceled, or name
ARGS: NONE
"CURRENTPATH" Return current path in bottom grazer window, if any
ARGS: NONE
"GETSCREEN" Return editor/switcher screen address
ARGS: NONE
"SET_VIEW" Change views between project/files, project/Switcher, etc.
Returns the code for the previous mode
ARGS: View# 0-5 though 3 is not supported, 5 is no top window, ARexx-only mode
View Code
---------------- ----
Files/Files 0
Project 1
Project/Files 2
Project/Project 3
Project/Switcher 4
"ADDPROGRAM" Add a Name and command to 'Programs' popup
ARGS: Program Name(28 chars max), command string(127 chars max), flags
where:
Name appears in popup, runs command as either rexx or dos script
depending on flags bit 0 (i.e. 1 for ARexx, 0 for dos). Returns
number in popup sequence. N.B. The editor waits for Dos commands
to return, thus an app. that will not finish immediately should
be preceeded by the 'run' command.
Note: DOS execution may be broken???
"REMPROGRAM" Remove user-program from 'Programs' popup
ARGS: program index (position in popup) as returned by Addprogram
"PROGRAMCMD" return user-program command string
ARGS: program index (position in popup) as returned by Addprogram
"PROGRAMNAME" return user-program name as it appears in Programs popup
ARGS: program index (position in popup) as returned by Addprogram
"PROGRAMNUM" return program index (position in popup)
ARGS: User-program command string
"ADDTOOL" Add a Name and command to 'Tools' popup
ARGS: Program Name(28 chars max), command string(127 chars max), flags
where:
Name appears in popup, runs command as either rexx or dos script
depending on flags bit 0 (i.e. 1 for ARexx, 0 for dos). Returns
number in popup sequence. N.B. The editor waits for Dos commands
to return, thus an app. that will not finish immediately should
be preceeded by the 'run' command.
Note: DOS execution may be broken???
"REMTOOL" Remove user-program from 'Tools' popup
ARGS: program index (position in popup) as returned by Addtool
"TOOLCMD" return user-program command string
ARGS: program index (position in popup) as returned by Addtool
"TOOLNAME" return user-program name as it appears in Tool popup
ARGS: program index (position in popup) as returned by Addprogram
"TOOLNUM" return Tool index (position in popup)
ARGS: User-program command string
"TBC" Adjust Flyer TBC settings
ARGS: Setting,[value] (if value is omitted, current setting is returned
Setting May be 1 of: (cap.s are min. abbrev.)
Bright(-64 - 63), Contrast(0-127), Saturation(0-127),
HUe(-64-63), Fader(0-255), Phase(0-2047),
HorizAdj(0-909), Key(0-3), Mode(0-2)(for keyer),
Encoder(0-15), Decoder(0-8),
Termination(0-31), Input(0-3), Out(0,1)
Here are the tag names you can use with the crouton tag commands.
Internally, they correspond to ordered numbers which may have the first bit
set to indicate whether the values are LONGs or variable length tables.
The meaning of the tags should be evident from their names, and if they're
not, that is a good indication that you shouldn't mess with them, and they
probably won't do anything if you do.
Version
Revision
AAeffect
NonAAeffect
KillInterfaceNonAA
KillInterfaceAA
ButtonELHlogic
CustomButtonELHlogic
NumberOfAnims
RequestFileName
AnimFiles
Frames
FieldSync
VariableSpeeds
ForcePlayForward
ForcePlayReverse
LoopAnims
AnimControl
AudioFastSamples
AudioMediumSamples
AudioSlowSamples
AudioFiles
AudioControl
PauseTimes
LatchColors
TransparentColors
PaletteColors
Equations
Encoder
VerticalScroll
ReverseTime
ReverseButtLog
ReverseCustomButtLog
KeyMode
MatteColor
CustomMatteColor
BorderColor
CustomBorderColor
LineNumbers
LineNumberPlane
ForceFreeze4
ForceFreeze8
ForceLive
ForceLumKeyOn
ForceLumKeyOff
ForceLumKeyOnBlack
ForceLumKeyOnWhite
BadDefaultFX
LoadPictures
FadeInDuration
FadeOutDuration
DigitalFX
TimeMode
LUT
DigitalPairs
LatchAM
LatchBM
LatchIS
HonorPreviewOverLay
ForceDefaultMatte
TurnAudioFilterOff
AudioStartField
NumAudioFields
ISandClipPause
Interlaced
FirstFieldNTSCII
BounceILBM
LatchRanges
LatchList
TransparentRanges
TransparentList
Color0Transparent
AbortIfSlow
NumSkipFieldsAtEnd
TBarDoesAuto
DoNotStompSprite
AbortLoopAtEnd
NonAAremap
100PercentWhiteMatte
UseEffectColor
LoopCount
CroutonType
TimeLine
IndexID
FCountMode
VariableFCount
SlowFCount
MedFCount
FastFCount
VariableFCount68000
SlowFCount68000
MedFCount68000
FastFCount68000
NumFields
StartTime
DescriptorList
AboutList
CommentList
AlgoFXtype
AlgoFXborder
NumFramesSlow
NumFramesMedium
NumFramesFast
NumFramesVariable
Page
Speed
Delay
Duration
AudioAttack
AudioDecay
RecFields
AudioOn
AudioStart
AudioDuration
ClipStartField
FadeInVideo
MaxDuration
VideoSource
LoadedSlices
OriginalLocation
AudioVolume1
AudioVolume2
AudioPan1
AudioPan2
PanelMode
ColorMode
CycleMode
DataMode
AdjustedVideoStart
AdjustedVideoDuration
Asynchronous
CommandLine
SMPTEtime
TBarPosition
HoldFields
TakeOffset
ASourceLen
BSourceLen
AudioFadeFlags
Here are the Error codes returned by the FLYERSTATUS command.
/*** General Flyer Errors ***/
#define FERR_OKAY 0x00 /* All went well */
#define FERR_CMDFAILED 0x01 /* Command failed for some reason */
#define FERR_BUSY 0x02 /* Still in progress */
#define FERR_ABORTED 0x03 /* User abort */
#define FERR_BADPARAM 0x04 /* Bad command parameter */
#define FERR_BADCOMMAND 0x05 /* Command not defined/supported */
#define FERR_BADVIDHDR 0x06 /* Ran out of video - no header detected */
#define FERR_WRONGMODE 0x07 /* Wrong play/rec mode for action */
#define FERR_OLDDATA 0x08 /* Incompatible data */
#define FERR_NOAUDIOCHAN 0x09 /* No free audio channel(s) */
#define FERR_CHANINUSE 0x0A /* Video/SCSI channel not available */
#define FERR_BADFLDHAND 0x0B /* Bad field handle */
#define FERR_CLIPLATE 0x0C /* A/V clip started late */
/*** Flyer Internal Errors ***/
#define FERR_NOTASKS 0x10 /* No SCSI tasks available for use */
#define FERR_LISTCORRUPT 0x11 /* Internal list corrupt */
#define FERR_NOTINRANGE 0x12 /* Internal list error */
#define FERR_EEFAILURE 0x13 /* EEPROM failure */
#define FERR_NOFINDERS 0x14 /* No FrameFinders available for use */
#define FERR_BADMODULE 0x1F /* Incompatible module provided */
/*** FileSystem Errors ***/
#define FIRSTFSERR 0x20
#define FERR_OBJNOTFOUND 0x20 /* Could not find file/dir */
#define FERR_FULL 0x21 /* Drive full */
#define FERR_DIRFULL 0x22 /* Directory full */
#define FERR_EXHAUSTED 0x23 /* Directory list exhausted */
#define FERR_FSFAIL 0x24 /* FileSystem failure */
#define FERR_WRONGTYPE 0x25 /* Wrong type of object */
#define FERR_UNFORMATTED 0x26 /* Drive not high-level formatted */
#define FERR_EXCLUDED 0x27 /* Exclusive lock prevented action */
#define FERR_OUTOFRANGE 0x28 /* Seek beyond bounds */
#define FERR_CANTEXTEND 0x29 /* End of file, and cannot extend file */
#define FERR_PROTECTED 0x2A /* Drive write-protected */
#define FERR_DIFFERENT 0x2B /* Grips are different objects */
#define FERR_EXISTS 0x2C /* File already exists */
#define FERR_NOMEM 0x2D /* Out of storage */
#define FERR_DELPROT 0x2E /* Delete-protected file */
#define FERR_READPROT 0x2F /* Read-protected file */
#define FERR_WRITEPROT 0x30 /* Write-protected file */
#define FERR_INUSE 0x31 /* Disk/object in use */
#define FERR_DIRNOTEMPTY 0x32 /* Directory was not empty */
#define LASTFSERR 0x32
/*** SCSI Errors ***/
#define FERR_SELTIMEOUT 0x40 /* SCSI Time-out -- no drive */
#define FERR_BADSTATUS 0x41 /* Bad status after executing command */
/*** Sequencing Errors ***/
#define FERR_WRONGDATATYPE 0x60 /* Asked for improper type of data from clip */
#define FERR_DRIVEINCAPABLE 0x61 /* Using video clip from a non-video drive */
#define FERR_NO_BROLLDRIVE 0x62 /* No video B-roll drive found */
#define FERR_HEADFAILED 0x63 /* A/B head missing/problem */
/*** Amiga Library Errors ***/
#define FERR_NOCARD 0x70 /* Flyer card specified does not exist */
#define FERR_LIBFAIL 0x71 /* Library failed to pass command to Flyer */
#define FERR_ASYNCFAIL 0x72 /* An asynchronous command failed */
#define FERR_VOLNOTFOUND 0x73 /* Volume name not found */
#define FERR_NOFREECMD 0x74 /* Library<->Flyer RAM clogged */
#define FERR_BADID 0x75 /* Illegal async ID */
#define FERR_LIMIT 0x7F